﻿// Admin.NET 项目的版权、商标、专利和其他相关权利均受相应法律法规的保护。使用本项目应遵守相关法律法规和许可证的要求。
//
// 本项目主要遵循 MIT 许可证和 Apache 许可证（版本 2.0）进行分发和使用。许可证位于源代码树根目录中的 LICENSE-MIT 和 LICENSE-APACHE 文件。
//
// 不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动！任何基于本项目二次开发而产生的一切法律纠纷和责任，我们不承担任何责任！

using Admin.NET.Application.Entity;
using AngleSharp.Html.InputTypes;
using Microsoft.AspNetCore.Components.Web.Virtualization;
using SqlSugar;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Admin.NET.Application.Service.WcsService;
public class WcsTaskDto : BasePageInput
{

    /// <summary>
    /// 任务号
    /// </summary>
    public string TaskNumber { get; set; }
    /// <summary>
    /// 任务下发时间
    /// </summary>
    public DateTime DownDate { get; set; }
    /// <summary>
    /// 任务完成时间
    /// </summary>
    public DateTime FinishDate { get; set; }
    /// <summary>
    /// 任务状态枚举
    /// </summary>
    public int? Status { get; set; }
    /// <summary>
    /// 任务类型枚举
    /// </summary>
    public int? Type { get; set; }
    /// <summary>
    /// 物料编码
    /// </summary>
    public  string MaterialCode { get; set; } 
}

public class WcsTaskAddDto : WCSTaskManagementEntity
{
    /// <summary>
    /// 任务号生成
    /// </summary>
    public string TaskNumber { get; set; }
    /// <summary>
    /// 任务下发时间
    /// </summary>
    public DateTime DownDate { get; set; }
    /// <summary>
    /// 任务状态枚举
    /// </summary>
    public TaskStatusEnmu Status { get; set; }
    /// <summary>
    /// 任务类型枚举
    /// </summary>
    public int Type { get; set; }
    /// <summary>
    /// SN码
    /// </summary>
    public string SN { get; set; }
    /// <summary>
    /// 暂存渠道
    /// </summary>
    public string Channel { get; set; }
    /// <summary>
    /// 发送次数
    /// </summary>
    public int CountNumber { get; set; } = 0;
    /// <summary>
    /// 响应结果
    /// </summary>
    public string ResPonse { get; set; }
}

public class WcsTaskUpdateDto : WcsTaskAddDto
{
}
public class WcsTaskDeleteDto : BaseIdInput
{
}
/// <summary>
/// 添加WCS任务输入
/// </summary>
public class AddWcsTaskInput : WCSTaskManagementEntity
{
    /// <summary>
    /// 任务类型
    /// </summary>
    [Required(ErrorMessage = "请选择合适的任务类型")]
    public TaskTypeEnum TaskType { get; set; }
    /// <summary>
    /// 任务状态
    /// </summary>
    [Required(ErrorMessage = "任务状态需合法默认未开始")]
    public TaskStatusEnmu TaskStatus { get; set; }
    /// <summary>
    /// 任务描述
    /// </summary>
    
    public string Description { get; set; }
}



/// <summary>
/// 更新WCS任务输入
/// </summary>
public class UpdateWcsTaskInput : WCSTaskManagementEntity
{
    /// <summary>
    /// 任务状态
    /// </summary>
    public int ? TaskStatus { get; set; }
}
/// <summary>
/// 删除Wcs任务
/// </summary>
public class DeleteWcsInput : BaseIdInput
{
}
/// <summary>
/// 导出Wcs任务
/// </summary>
public class ExportWcsInput : BasePageInput
{
    /// <summary>
    /// 前端表头字段
    /// </summary>
    public List<TableHeaderModel> TableHead { get; set; }
    /// <summary>
    /// 任务号
    /// </summary>
    public string TaskNumber { get; set; }
    /// <summary>
    /// 任务下发时间
    /// </summary>
    public DateTime DownDate { get; set; }
    /// <summary>
    /// 任务完成时间
    /// </summary>
    public DateTime FinishDate { get; set; }
    /// <summary>
    /// 任务状态枚举
    /// </summary>
    public int? Status { get; set; }
    /// <summary>
    /// 任务类型枚举
    /// </summary>
    public int? Type { get; set; }
}

/// <summary>
/// 导入 输入参数
/// </summary>
public class ImportWcsTaskOutput : WCSTaskManagementEntity
{
    /// <summary>
    /// 执行结果
    /// </summary>
    public int ResultCode { get; set; } = 200;

    /// <summary>
    /// 错误信息
    /// </summary>
    public string Message { get; set; } = "导入成功";
}
/// <summary>
/// 暂存出库导入 输入参数
/// </summary>
public class TemporaryDto : WCSTaskManagementEntity
{
    /// <summary>
    /// 执行结果
    /// </summary>
    public int ResultCode { get; set; } = 200;
    /// <summary>
    /// 错误信息
    /// </summary>
    public string Message { get; set; } = "暂存入库导入成功";

}